package com.itbaizhan;

/*
在Idea中创建Web工程
三个步骤：
创建Web工程
添加servlet-api.jar
配置Tomcat
*/
/*在web中编写servlet*/

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

//1,继承HttpServlet
public class HelloWorld extends HttpServlet {
    //2,重写doget方法   在菜单栏里的Code-->Override Methods-->doGet()

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //通过getWriter()向客

        PrintWriter pw = resp.getWriter();
        pw.println("<!DOCTYPE html>");
        pw.println("<html lang=en>");
        pw.println("<head>");
        pw.println("<meta charset=UTF-8>");
        pw.println("<title>Document</title>");
        pw.println("</head>");
        pw.println("<body>");
        pw.println("<font color=blue>HelloWorld</font>");
        pw.println("</body>");
        pw.println("</html>");
        pw.flush();
        pw.close();
    }
/*
    * Idea中的web项目部署详解
在Idea中默认的并不会把web项目真正的部署到Tomcat的webapps目录中，
* 而是通过为每个web项目创建一个独立的Tomcat副本并在Tomcat副本中
* 通过的Tomcat的Context组件完成项目的目录指定，
* 在Context组件的docBase属性中会指定Idea对web项目编译后的
* 目录out/artifacts/.....。
*
* 默认部署方式

Idea会在C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat
* 中为每个Web项目创建一个独立的Tomcat副本。
*
*  C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\
* tomcat\Unnamed_servletdemo_2\conf\Catalina\localhost
* 目录中生成一个该项目的xml文件名称为：”项目名.xml”。
*
* 在xml文件中指定web项目编译完后的artifacts目录的位置。

1<Context path="/servletdemo" docBase="D:\webproject\servletdemo\out\artifacts\servletdemo_war_exploded" />
Idea通过执行Tomcat的catalina.bat启动脚本启动Tomcat，通过启动参数来指定启动Tomcat副本运行指定目录中的web项目。
*
* daa在启动Tomcat之前会先在操作系统中设置一些临时环境变量，这些变量会被
* Tomcat的启动脚本所读取
*
*CATALINA_BASE：是Tomcat副本的工作目录

CATALINA_HOME：是Tomcat的安装目录

在Catalina.bat启动脚本运行时，会先去判断脚本中的CATALINA_HOME以及
* CATALINA_BASE是否为空，如果为空则使用Tomcat路径作为默认值。
* 由于Idea在启动Tomcat之前已经设置了临时环境变量，
* 所以tomcat在启动后就会运行部署在Tomcat副本中的web项目。 */
}
